﻿//using System;
//using System.Data.Entity;
//using System.Linq;
//using UCosmic.Domain;
//using UCosmic.Domain.Identity;
//using UCosmic.Orm;

//namespace UCosmic.Storage
//{
//    public class UserStorage : IStoreUsers
//    {
//        #region Construction & DI

//        //public UserStorage(IUnitOfWork unitOfWork)
//        //    : base(unitOfWork)
//        //{
//        //}

//        public IUnitOfWork UnitOfWork { get; private set; }

//        private UCosmicContext DbContext
//        {
//            get { return UnitOfWork as UCosmicContext; }
//        }

//        public UserStorage(IUnitOfWork unitOfWork)
//        {
//            UnitOfWork = unitOfWork;
//        }

//        #endregion
//        #region User Aggregate Root

//        public IQueryable<User> All
//        {
//            get { return DbContext.Users; }
//        }

//        public IQueryable<User> Current
//        {
//            get
//            {
//                return All
//                    .Include(u => u.Grants)
//                    .Include(u => u.Grants.Select(g => g.Role))
//                .Current();
//            }
//        }

//        //public override IQueryable<User> AllIncluding(params Expression<Func<User, object>>[] includeProperties)
//        //{
//        //    return includeProperties.Aggregate<Expression<Func<User, object>>, IQueryable<User>>(
//        //        WorkUnit.DbContext.Users, (current, includeProperty) => current.Include(includeProperty));
//        //}

//        //public User Find(int id)
//        //{
//        //    return WorkUnit.DbContext.Users.Find(id);
//        //}

//        public User Revise(User revisableEntity)
//        {
//            throw new NotImplementedException();
//        }

//        #endregion

//    }
//}
